/* Start of class Stoplist */

function Stoplist(words) {
	this.bannedWords = words;
}

Stoplist.prototype.apply = function(text) {
	var words = text.split(" ");
	var newText = "";
	for (var i in words) {
		var index = indexOf(this.bannedWords, words[i]);

		if (index == -1) { // if word is NOT banned
			newText += words[i] + " ";
		}
	}
	return newText;
}

/* End of class Stoplist */

// An associative array which contains every supported language's stoplist.
var STOP_LISTS = {

	"english" :
	[
		"a", "about", "above", "across", "after", "again",
		"against", "all", "almost", "alone", "along", "already", "also", "although",
		"always", "among", "an", "and", "another", "any", "anybody", "anyone",
		"anything", "anywhere", "are", "area", "areas", "around", "as", "ask", "asked",
		"asking", "asks", "at", "away", "b", "back", "backed", "backing", "backs", "be",
		"became", "because", "become", "becomes", "been", "before", "began", "behind",
		"being", "beings", "best", "better", "between", "big", "both", "but", "by", "c",
		"came", "can", "cannot", "case", "cases", "certain", "certainly", "clear",
		"clearly", "come", "could", "d", "did", "differ", "different", "differently",
		"do", "does", "done", "down", "down", "downed", "downing", "downs", "during",
		"e", "each", "early", "either", "end", "ended", "ending", "ends", "enough",
		"even", "evenly", "ever", "every", "everybody", "everyone", "everything",
		"everywhere", "f", "face", "faces", "fact", "facts", "far", "felt", "few",
		"find", "finds", "first", "for", "four", "from", "full", "fully", "further",
		"furthered", "furthering", "furthers", "g", "gave", "general", "generally",
		"get", "gets", "give", "given", "gives", "go", "going", "good", "goods", "got",
		"great", "greater", "greatest", "group", "grouped", "grouping", "groups", "h",
		"had", "has", "have", "having", "he", "her", "here", "herself", "high", "high",
		"high", "higher", "highest", "him", "himself", "his", "how", "however", "i",
		"if", "important", "in", "interest", "interested", "interesting", "interests",
		"into", "is", "it", "its", "itself", "j", "just", "k", "keep", "keeps", "kind",
		"knew", "know", "known", "knows", "l", "large", "largely", "last", "later",
		"latest", "least", "less", "let", "lets", "like", "likely", "long", "longer",
		"longest", "m", "made", "make", "making", "man", "many", "may", "me", "member",
		"members", "men", "might", "more", "most", "mostly", "mr", "mrs", "much",
		"must", "my", "myself", "n", "necessary", "need", "needed", "needing", "needs",
		"never", "new", "new", "newer", "newest", "next", "no", "nobody", "non",
		"noone", "not", "nothing", "now", "nowhere", "number", "numbers", "o", "of",
		"off", "often", "old", "older", "oldest", "on", "once", "one", "only", "open",
		"opened", "opening", "opens", "or", "order", "ordered", "ordering", "orders",
		"other", "others", "our", "out", "over", "p", "part", "parted", "parting",
		"parts", "per", "perhaps", "place", "places", "point", "pointed", "pointing",
		"points", "possible", "present", "presented", "presenting", "presents",
		"problem", "problems", "put", "puts", "q", "quite", "r", "rather", "really",
		"right", "right", "room", "rooms", "s", "said", "same", "saw", "say", "says",
		"second", "seconds", "see", "seem", "seemed", "seeming", "seems", "sees",
		"several", "shall", "she", "should", "show", "showed", "showing", "shows",
		"side", "sides", "since", "small", "smaller", "smallest", "so", "some",
		"somebody", "someone", "something", "somewhere", "state", "states", "still",
		"still", "such", "sure", "t", "take", "taken", "than", "that", "the", "their",
		"them", "then", "there", "therefore", "these", "they", "thing", "things",
		"think", "thinks", "this", "those", "though", "thought", "thoughts", "three",
		"through", "thus", "to", "today", "together", "too", "took", "toward", "turn",
		"turned", "turning", "turns", "two", "u", "under", "until", "up", "upon", "us",
		"use", "used", "uses", "v", "very", "w", "want", "wanted", "wanting", "wants",
		"was", "way", "ways", "we", "well", "wells", "went", "were", "what", "when",
		"where", "whether", "which", "while", "who", "whole", "whose", "why", "will",
		"with", "within", "without", "work", "worked", "working", "works", "would", "x",
		"y", "year", "years", "yet", "you", "young", "younger", "youngest", "your",
		"yours", "z",
		// Contractions (with apostrophe omitted) added to original list
		"im", "ill", "id", "ive", "youre", "youll", "youd",
		"youve", "youd", "hes", "hed", "hes", "shes", "its", "itll", "itd", "weve",
		"theyre", "theyll", "theyd", "thats", "thatll", "thatd", "whos", "wholl",
		"whod", "whats", "whatre", "whatll", "whatd", "wheres", "wherell", "whered",
		"whens", "whenll", "whend", "whys", "whyll", "whyd", "hows", "howll", "howd",
		"isnt", "arent", "wasnt", "werent", "havent", "hasnt", "hadnt", "wont",
		"wouldnt", "dont", "doesnt", "didnt", "cant", "couldnt", "shouldnt", "mighnt",
		"mustnt", "wouldve", "shouldve", "couldve", "mightve", "mustve"
	],

	"french" :
	[
		"a",  "beaucoup", "comment", "encore", "lequel", "moyennant", "près", "ses", "toujours",
		"afin", "ça", "concernant", "entre", "les", "ne", "puis", "sien", "tous",
		"ailleurs", "ce", "dans", "et", "lesquelles", "ni", "puisque", "sienne", "toute",
		"ainsi", "ceci", "de", "étaient", "lesquels", "non", "quand", "siennes", "toutes",
		"alors", "cela", "dedans", "était", "leur", "nos", "quant", "siens", "très",
		"après", "celle", "dehors", "étant", "leurs", "notamment", "que", "soi", "trop",
		"attendant", "celles", "déjà", "etc", "lors", "notre", "quel", "soi-même", "tu",
		"au", "celui", "delà", "eux", "lorsque", "notres", "quelle", "soit", "un",
		"aucun", "cependant", "depuis", "furent", "lui", "nôtre", "quelqu'un", "sont", "une",
		"aucune", "certain", "des", "grâce", "ma", "nôtres", "quelqu'une", "suis", "vos",
		"au-dessous", "certaine", "desquelles", "hormis", "mais", "nous", "quelque", "sur", "votre",
		"au-dessus", "certaines", "desquels", "hors", "malgré", "nulle", "quelques-unes", "ta", "vôtre",
		"auprès", "certains", "dessus", "ici", "me", "nulles", "quelques-uns", "tandis", "vôtres",
		"auquel", "ces", "dès", "il", "même", "on", "quels", "tant", "vous",
		"aussi", "cet", "donc", "ils", "mêmes", "ou", "qui", "te", "vu",
		"aussitôt", "cette", "donné", "jadis", "mes", "où", "quiconque", "telle", "y",
		"autant", "ceux", "dont", "je", "mien", "par", "quoi", "telles",
		"autour", "chacun", "du", "jusqu", "mienne", "parce", "quoique", "tes",
		"aux", "chacune", "duquel", "jusque", "miennes", "parmi", "sa", "tienne",
		"auxquelles", "chaque", "durant", "la", "miens", "plus", "sans", "tiennes",
		"auxquels", "chez", "elle", "laquelle", "moins", "plusieurs", "sauf", "tiens",
		"avec", "combien", "elles", "là", "moment", "pour", "se", "toi",
		"à", "comme", "en", "le", "mon", "pourquoi", "selon", "ton"
	],

	"german" :
	[
		"ab", "dann", "des", "es", "ihnen", "keinem", "obgleich", "sondern", "welchem",
		"aber", "daran", "desselben", "etwa", "ihr", "keinen", "oder", "sonst", "welchen",
		"allein", "darauf", "dessen", "etwas", "ihre", "keiner", "ohne", "soviel", "welcher",
		"als", "daraus", "dich", "euch", "Ihre", "keines", "paar", "soweit", "welches",
		"also", "darin", "die", "euer", "ihrem", "man", "sehr", "über", "wem",
		"am", "darüber", "dies", "eure", "Ihrem", "mehr", "sei", "um", "wen",
		"an", "darum", "diese", "eurem", "ihren", "mein", "sein", "und", "wenn",
		"auch", "darunter", "dieselbe", "euren", "Ihren", "meine", "seine", "uns", "wer",
		"auf", "das", "dieselben", "eurer", "Ihrer", "meinem", "seinem", "unser", "weshalb",
		"aus", "dasselbe", "diesem", "eures", "ihrer", "meinen", "seinen", "unsre", "wessen",
		"außer", "daß", "diesen", "für", "ihres", "meiner", "seiner", "unsrem", "wie",
		"bald", "davon", "dieser", "fürs", "Ihres", "meines", "seines", "unsren", "wir",
		"bei", "davor", "dieses", "ganz", "im", "mich", "seit", "unsrer", "wo",
		"beim", "dazu", "dir", "gar", "in", "mir", "seitdem", "unsres", "womit",
		"bin", "dazwischen", "doch", "gegen", "ist", "mit", "selbst", "vom", "zu",
		"bis", "dein", "dort", "genau", "ja", "nach", "sich", "von", "zum",
		"bißchen", "deine", "du", "gewesen", "je", "nachdem", "Sie", "vor", "zur",
		"bist", "deinem", "ebenso", "her", "jedesmal", "nämlich", "sie", "während", "zwar",
		"da", "deinen", "ehe", "herein", "jedoch", "neben", "sind", "war", "zwischen",
		"dabei", "deiner", "ein", "herum", "jene", "nein", "so", "wäre",
		"dadurch", "deines", "eine", "hin", "jenem", "nicht", "sogar", "wären",
		"dafür", "dem", "einem", "hinter", "jenen", "nichts", "solch", "warum",
		"dagegen", "demselben", "einen", "hintern", "jener", "noch", "solche", "was",
		"dahinter", "den", "einer", "ich", "jenes", "nun", "solchem", "wegen",
		"damit", "denn", "eines", "ihm", "kaum", "nur", "solchen", "weil",
		"danach", "der", "entlang", "ihn", "kein", "ob", "solcher", "weit",
		"daneben", "derselben", "er", "Ihnen", "keine", "ober", "solches", "welche"
	],

	"italian" :
	[
		"a", "da", "durante", "lo", "o", "seppure", "un",
		"affinchè", "dachè", "e", "loro", "onde", "si", "una",
		"agl'", "dagl'", "egli", "ma", "oppure", "siccome", "uno",
		"agli", "dagli", "eppure", "mentre", "ossia", "sopra", "voi",
		"ai", "dai", "essere", "mio", "ovvero", "sotto", "vostro",
		"al", "dal", "essi", "ne", "per", "su,",
		"all'", "dall'", "finché", "neanche", "perchè", "subito,",
		"alla", "dalla", "fino", "negl'", "perciò", "sugl',",
		"alle", "dalle", "fra", "negli", "però", "sugli,",
		"allo", "dallo", "giacchè", "nei", "poichè", "sui,",
		"anzichè", "degl'", "gl'", "nel", "prima", "sul,",
		"avere", "degli", "gli", "nell'", "purchè", "sull',",
		"bensì", "dei", "grazie", "nella", "quand'anche", "sulla,",
		"che", "del", "I", "nelle", "quando", "sulle,",
		"chi", "dell'", "il", "nello", "quantunque", "sullo,",
		"cioè", "delle", "in", "nemmeno", "quasi", "suo,",
		"come", "dello", "inoltre", "neppure", "quindi", "talchè,",
		"comunque", "di", "io", "noi", "se", "tu,",
		"con", "dopo", "l'", "nonchè", "sebbene", "tuo,",
		"contro", "dove", "la", "nondimeno", "sennonchè", "tuttavia,",
		"cosa", "dunque", "le", "nostro", "senza", "tutti"
	],

	"spanish" :
	[
		"a", "aquí", "cuantos", "esta", "misma", "nosotras", "querer", "tales", "usted",
		"acá", "cada", "cuán", "estar", "mismas", "nosotros", "qué", "tan", "ustedes",
		"ahí", "cierta", "cuánto", "estas", "mismo", "nuestra", "quien", "tanta", "varias",
		"ajena", "ciertas", "cuántos", "este", "mismos", "nuestras", "quienes", "tantas", "varios",
		"ajenas", "cierto", "de", "estos", "mucha", "nuestro", "quienesquiera", "tanto", "vosotras",
		"ajeno", "ciertos", "dejar", "hacer", "muchas", "nuestros", "quienquiera", "tantos", "vosotros",
		"ajenos", "como", "del", "hasta", "muchísima", "nunca", "quién", "te", "vuestra",
		"al", "cómo", "demasiada", "jamás", "muchísimas", "os", "ser", "tener", "vuestras",
		"algo", "con", "demasiadas", "junto", "muchísimo", "otra", "si", "ti", "vuestro",
		"alguna", "conmigo", "demasiado", "juntos", "muchísimos", "otras", "siempre", "toda", "vuestros",
		"algunas", "consigo", "demasiados", "la", "mucho", "otro", "sí", "todas", "y",
		"alguno", "contigo", "demás", "las", "muchos", "otros", "sín", "todo", "yo",
		"algunos", "cualquier", "el", "lo", "muy", "para", "Sr", "todos",
		"algún", "cualquiera", "ella", "los", "nada", "parecer", "Sra", "tomar",
		"allá", "cualquieras", "ellas", "mas", "ni", "poca", "Sres", "tuya",
		"allí", "cuan", "ellos", "más", "ninguna", "pocas", "Sta", "tuyo",
		"aquel", "cuanta", "él", "me", "ningunas", "poco", "suya", "tú",
		"aquella", "cuantas", "esa", "menos", "ninguno", "pocos", "suyas", "un",
		"aquellas", "cuánta", "esas", "mía", "ningunos", "por", "suyo", "una",
		"aquello", "cuántas", "ese", "mientras", "no", "porque", "suyos", "unas",
		"aquellos", "cuanto", "esos", "mío", "nos", "que", "tal", "unos",
	],

	"portuguese" :
	[
		"a", "bem", "e", "longe", "para", "se", "você",
		"abaixo", "com", "ela", "mais", "por", "sem", "vocês",
		"adiante", "como", "elas", "menos", "porque", "sempre,",
		"agora", "contra", "êle", "muito", "pouco", "sim,",
		"ali", "debaixo", "eles", "não", "próximo", "sob,",
		"antes", "demais", "em", "ninguem", "qual", "sobre,",
		"aqui", "depois", "entre", "nós", "quando", "talvez,",
		"até", "depressa", "eu", "nunca", "quanto", "todas,",
		"atras", "devagar", "fora", "onde", "que", "todos,",
		"bastante", "direito", "junto", "ou", "quem", "vagarosamente"
	],

	"swedish" :
	[
		"ab", "du", "hette", "minst", "skall",
		"aldrig", "efter", "hon", "minsta", "skulle",
		"all", "efteråt", "honom", "mot", "som",
		"alla", "eftersom", "hos", "mycket", "ta",
		"allt", "ej", "hur", "någon", "till",
		"alltid", "eller", "i", "någonting", "tillräcklig",
		"allting", "emot", "i fall", "något", "tillräckliga",
		"än", "en", "ifall", "några", "tillräckligt",
		"andra", "endast", "in", "när", "tillsammans",
		"andre", "er", "inga", "nära", "tog",
		"annan", "era", "ingen", "ned", "trots att",
		"annat", "ert", "ingenting", "nej", "under",
		"ännu", "ett", "inget", "ner", "underst",
		"är", "få", "innan", "nere", "undre",
		"åter", "fall", "inte", "ni", "upp",
		"att", "färre", "ja", "nu", "uppe",
		"av", "fastän", "jag", "och", "ut",
		"avse", "flest", "kan", "också", "utan",
		"avsedd", "flesta", "kort", "om", "ute",
		"avsedda", "för", "korta", "oss", "utom",
		"avser", "först", "kunde", "över", "vad",
		"avses", "första", "kunna", "överst", "väl",
		"bakom", "förste", "lång", "översta", "var",
		"bara", "fort", "långa", "övre", "vara",
		"bäst", "framför", "långsam", "på", "varför",
		"bättre", "från", "långsamma", "så", "vart",
		"bra", "genom", "långsamt", "sådan", "vem",
		"bredvid", "god", "långt", "sådana", "vems",
		"då", "goda", "lite", "sådant", "vet",
		"dålig", "gott", "liten", "säga", "veta",
		"där", "ha", "litet", "säger", "vi",
		"därför", "hade", "man", "sägs", "vid",
		"de", "haft", "med", "sämre", "vilken",
		"dem", "han", "medan", "sämst", "vill",
		"den", "hans", "mellan", "sån", "ville",
		"denna", "här", "men", "sånt", "visste",
		"deras", "hellre", "mer", "såsom", "vore",
		"dess", "henne", "mera", "sin",
		"dessa", "hennes", "mest", "sist",
		"det", "heta", "mesta", "sista",
		"detta", "heter", "mindre", "ska"
	],

	"finnish" :
	[
		"ään", "jälkeen", "kumpi", "nopeasti", "suoraan",
		"ah", "jo", "kumpikaan", "nuo", "ta",
		"ai", "joka", "kumpikin", "nyt", "tä",
		"aina", "jokainen", "kun", "oi", "tähden",
		"alla", "joku", "kunhan", "olemme", "tahi",
		"alle", "jollei", "kunnes", "olen", "tai",
		"alta", "jolleivat", "kuten", "olet", "taikka",
		"ansiosta", "jollemme", "kyllä", "olette", "takana",
		"edessä", "jollen", "kylliksi", "oli", "takia",
		"een", "jollet", "lähellä", "olimme", "tämä",
		"ehkä", "jollette", "läpi", "olin", "tarpeeksi",
		"ei", "jos", "liian", "olit", "tässä",
		"eli", "joskin", "lla", "olitte", "te",
		"elikkä", "jotta", "llä", "olivat", "tokko",
		"ellei", "kaikki", "lle", "ollut", "tta",
		"elleivät", "kanssa", "lta", "on", "ttä",
		"ellemme", "kaukana", "ltä", "oon", "tuo",
		"ellen", "ken", "luona", "ovat", "ulkopuolella",
		"ellet", "keneksi", "me", "paitsi", "useammin",
		"ellette", "kenelle", "mikä", "paljon", "useimmin",
		"enemmän", "kenkään", "mikään", "paremmin", "usein",
		"eniten", "kenties", "mikäli", "parhaiten", "vaan",
		"ennen", "keskellä", "mikin", "pian", "vähän",
		"eräs", "kesken", "miksi", "se", "vähemmän",
		"että", "ketkä", "milloin", "seen", "vähiten",
		"hän", "kohti", "milloinkaan", "sekä", "vaikka",
		"harva", "koska", "minä", "sen", "vailla",
		"he", "koskaan", "missä", "siellä", "varten",
		"hei", "ksi", "miten", "sieltä", "vastaan",
		"hitaasti", "kuin", "molemmat", "siin", "vielä",
		"hyi", "kuinka", "mutta", "sillä", "voi",
		"hyvin", "kuka", "na", "sinä", "ympäri",
		"iin", "kukaan", "nä", "sinne",
		"ilman", "kukin", "näin", "ssa",
		"itse", "kumpainen", "nämä", "ssä",
		"ja", "kumpainenkaan", "ne", "sta",
		"jahka", "kumpainenkin", "niin", "stä"
	]

};
